package com.ywu.mq.standard.data;

import com.ywu.mq.spi.entity.YwuKafkaConsumerLogEntity;
import com.ywu.mq.spi.entity.YwuKafkaProduceMessageEntity;
import com.ywu.mq.spi.dto.YwuKafkaDto;
import com.ywu.mq.standard.entity.YwuKafkaTopicSubEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface YwuKafkaRepository {
    void addKafkaProduceMessage(@Param("model") YwuKafkaProduceMessageEntity entity);

    void updateKafkaProduceMessage(@Param("model") YwuKafkaProduceMessageEntity entity);

    int queryMessageCount(@Param("model") YwuKafkaDto dto);

    List<YwuKafkaProduceMessageEntity> queryMessageList(@Param("model") YwuKafkaDto dto);

    YwuKafkaProduceMessageEntity getMessageEntity(@Param("model") YwuKafkaDto dto);

    void deleteTopicSubByAppId(@Param("model") YwuKafkaDto ywuKafkaDto);

    YwuKafkaTopicSubEntity getTopicSubEntity(@Param("model") YwuKafkaTopicSubEntity search);

    void insertTopicAppSub(@Param("model") YwuKafkaTopicSubEntity insertEntity);

    List<YwuKafkaTopicSubEntity> queryTopicSubList(@Param("model") YwuKafkaDto search);

    int queryTopicSubCount(@Param("model") YwuKafkaDto search);

    void deleteTopicSubById(@Param("model") YwuKafkaTopicSubEntity deleteEntity);

    void insertConsumerLog(@Param("model") YwuKafkaConsumerLogEntity ywuKafkaConsumer);

    void updateConsumerLog(@Param("model") YwuKafkaConsumerLogEntity ywuKafkaConsumer);

    List<YwuKafkaConsumerLogEntity> queryConsumerListByMessageId(@Param("model") YwuKafkaConsumerLogEntity ywuKafkaConsumer);
}
